动态对象跟随

您所在的位置:网站首页 ros 路径跟随 动态对象跟随

动态对象跟随

2024-07-08 17:12| 来源: 网络整理| 查看: 265

教程步骤 0- 创建行为树

让我们从这个简单的行为树开始。该行为树以1赫兹的频率重新规划新路径,并将该路径传递给控制器进行跟随:

首先,让我们让这个行为一直运行,直到出现故障。为此,我们将使用``KeepRunningUntilFailure``控制节点。

然后,我们将使用修饰器“GoalUpdater”来接受我们要跟随的动态物体姿态的更新。该节点以当前目标作为输入,并订阅主题“/goal_update”。如果在该主题上接收到新目标,它将将新目标设置为“updated_goal”。

为了保持与目标的一定距离,我们将使用动作节点``TruncatePath``。该节点会修改路径,使其变短,以便我们不会试图进入感兴趣的对象。我们可以使用输入端口``distance``来设置到目标的期望距离。

现在,您可以保存这个行为树并在我们的导航任务中使用它。

供您使用的确切行为树可以在``nav2_bt_navigator``包中找到,链接在`此处 `_。

1- 设置 Rviz 点击点

我们将使用RViz而不是完整的应用程序,这样您就可以在家中进行测试,而无需找到一个探测器来开始。我们将使用工具栏上的“clicked point”按钮,用来替代对象检测,以向Nav2提供目标更新。该按钮允许您在主题``/clicked_point``中发布坐标。这个点需要通过程序``clicked_point_to_pose``发送到行为树,从`此存储库 `_中获取。在您的工作空间中克隆此存储库,构建并在终端中输入命令。

ros2 run nav2_test_utils clicked_point_to_pose

可选地,您可以在rviz配置文件中重新映射此主题为``goal_updates``。

2- 在Nav2仿真中运行动态物体跟随

在一个终端中启动Nav2:

ros2 launch nav2_bringup tb3_simulation_launch.py default_bt_xml_filename:=/path/to/bt.xml

打开RViz,在初始化机器人位置后,命令机器人导航到任意位置。使用点击点按钮模拟对感兴趣对象的新检测,如本教程开头的视频所示。

当你的检测器以更高的频率(1 Hz、10 Hz、100 Hz)检测到障碍物时,你将看到一个更具反应性的机器人跟随你检测到的感兴趣的物体!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3